Configure and set up tooling for Golang.
This feature sets up age for encryption tasks. It uses the SSH key given in the location age-ssh-key to encrypt and decrypt files in the password-store. The feature is in contrib because it currently has limited functionality compared to GnuPG, which is the recommended privacy tool for RDE.
Setup and configure the imv command-line image viewer.
Configure the TeX typesetting system. LISTINGS-OPTIONS is an association list of key-value pairs for the tex-listings package that typesets source code.
Configure Zsh.
Setup and configure ssh and ssh-agent.
Setup and configure Git.
Setup and configure the mpv command-line player. UOSC? enables minimalist, but feature-rich proximity based UI and in addition to that thumbfast for on-the-fly thumbnail generation for progress bar.
Set XDG base (with a few extensions) and user directories.
Set the value to "$HOME" for any user directory if you don't need it. No other environment variables allowed in user directories.
Setup the nix package manager.
Setup zsh.
Setup imv, an image viewer for X11 and Wayland.
Setup rbw, the unofficial Bitwarden CLI.
Setup OBS, the Open Broadcaster Software.
Configure the GTK3 toolkit. You can tweak the provided GTK-THEME by overriding some of its styling via EXTRA-GTK-CSS, a single argument procedure that returns a list of CSS rules to be ingested by serialize-css-config
.
Set up and configure Common Lisp tooling. Choose your implementation of choice via LISP. EXTRA-SOURCE-REGISTRY-FILES is a list of file-likes that will be added under .config/common-lisp/source-registry.conf.d
to allow the ASDF source-registry mechanism to discover new Lisp systems in custom file-system locations. Customize the sly prompt with SLY-CUSTOM-PROMPT, a procedure that takes the current RDE configuration and should return an Emacs Lisp function that represents the custom prompt. If you'd rather use the default sly prompt, simply pass #f to it. See sly-mrepl-default-prompt
for its arguments and return value.
Configure l2md MDA.
Configure I2Pd.
Configure Bash.
Configure foot terminal.
Configure tmux.
Set up Nyxt, the hacker's power browser. DEFAULT-COOKIE-POLICY is either `:always' (accept all cookies), `:never' (reject all cookies), or `:no-third-party (only accept the current site's cookies)'. DEFAULT-NEW-BUFFER-URL is the default new page URL you'll be prompted with at browser startup if RESTORE-SESSION? is #f, otherwise you'll be shown the last-accessed page. You can control Nyxt remotely via a Lisp REPL if you set AUTOSTART-SLYNK? to #t and you connect to the underlying Lisp image at port `*slynk-port*' (by default 4006). If you set TEMPORARY-HISTORY? to #t, your history will be recorded in `nyxt-temporary-directory' (by default /tmp). Use EXTRA-CONFIG-LISP for additional general settings, and consult Nyxt's manual page, accessible via the command `manual' (C-h r), to discover more functionalities.
Setup and configure sway.
Configure rofi.
Provides values, which will affect other features, making them more HiDPI friendly.
Setup and configure GNU Emacs.
Configure fonts. DEFAULT-FONT-SIZE will be used for making font-monospace default value, and it will be ignored if #:font-monospace argument is specified.
Sets up gnupg, if SSH-AGENT? specified also sets up gpg's ssh-agent and provides GPG-PRIMARY-KEY value for other features.
Configure tooling and environment for GNU Guile.
Configure msmtp MTA.
Setup and configure isync. If MAIL-ACCOUNT-IDS not provided use all mail accounts. ISYNC-VERBOSE controls output verboseness of mbsync
.
Configure tooling and environment for OCaml.
Configure emacs-vterm and shells.
Set up Piper, a configuration utility for gaming mice.
Configure the SQLite relational database.
Configure docker and related packages.
Setup and configure ledger related things.
Configure python for emacs. If black? is #t, configure the emacs-python-black package, which provides useful functions for formatting python files.
Configure direnv and related Emacs packages.
Provides kernel configuration.
Configure waybar. Each element of WAYBAR-MODULES is a home service or a function accepting an rde config and returning a home-service, which extends home-waybar-service-type. Set TRANSITIONS? to #t if you prefer a smooth animation. Define a list of additional bars using EXTRA-CONFIG, you can use waybar modules with #:bar-id equal to the name of the bar. By default, the main bar will be shown on every output. Use OUTPUT to set a specific output for the main bar.
Configure kanshi.
Combine a few features into one.
Install and configure python and pip.
Setup zathura, a minimal document viewer.
Install the Signal desktop client.
Install and setup Neovim.
Setup docker.
Configure the yt-dlp program to download videos from YouTube and various other sites.
Setup and configure an environment for Clojure. If you want Leiningen support, make sure to pass in the LEININGEN package.
Configure notmuch and Emacs UI for it if emacs enabled.
Configure compilation tooling.
Configure Ydotool.
Setup zathura, a minimal document viewer.
Service to publish substitutes of Guix packages on the network.
Configure tooling to read manual pages.
Sets keyboard layout. Affects bootloader, and XKB_* variables for the user.
Configure rendering of Markdown files.
Configure plantuml and related emacs packages.
Configure swaylock.
Configure swayidle.
Symlink dotfiles to home.
Setup xorg with SDDM (display manager), dwm, dsblocks, dmenu and st.
Configure and set up Bluetooth.
Setup and configure brightness for various devices.
Configure Yggdrasil.
Configure Alacritty terminal.
Configure desktop notifications for battery status levels.
Provides basic information about user for all features.
Configure mct completion UI for GNU Emacs.
Configure org-mode for GNU Emacs.
Configure git-related utilities for GNU Emacs, including magit, git-link, git-timemachine.
Configure ERC, the extensible IRC client for Emacs. ERC-AUTO-QUERY, ERC-QUERY-DISPLAY, and ERC-JOIN-BUFFER determine the window behavior upon receiving a message, talking to someone, and joining a buffer, respectively. See the documentation of erc-join-buffer
for the possible configuration values. ERC-HIDE-LIST is a list of message types to hide, and ERC-TRACK-EXCLUDE-TYPES is a list of message types to ignore.
Configure SSH SOCKS Proxy. To customize ssh host port and other settings use feature-ssh.
Provides basic information about host.
Setup and configure environment for JavaScript.
Configure the PostgreSQL relational database.
Configure iwd and everything.
Provides custom bootloader configuration for operating-system. keyboard-layout will be overriden by feature-keyboard if it present.
Setup networking.
Install and configure KDE Connect.
Configure evil-mode for emacs. The feature is in contrib because the recommended RDE experience is to rely on Emacs default keybindings.
Configure the Emacs X Window Manager.
Configure Info and Info+ for reading Info documents in Emacs.
Configure the ebdb contact management package for Emacs. EBDB-SOURCES is a list of filenames to retrieve database information from. You can control the size of ebdb popup windows via EBDB-POPUP-SIZE with a floating-point value between 0 and 1.
Configure the help system in Emacs. Set up Helpful, an alternative to the built-in help that provides much more contextual information.
Configure the Emacs Desktop Notification Center (EDNC).
Configure emacs for guix usage and development.
Configure Calc, an advanced desk calculator and mathematical tool for Emacs. You can compute the current exchange rate for your preferred CURRENCY and update it every EXCHANGE-UPDATE-INTERVAL days.
Configure the Emacs MultiMedia System. Choose what method to use to retrieve information about tracks via EMMS-INFO-METHOD.
Configure time.el, an Emacs library to display the time. Choose the timezones you'll be prompted with upon calling world-clock
with WORLD-CLOCK-TIMEZONES and change its format with WORLD-CLOCK-TIME-FORMAT (see format-time-string
for information on the format strings). If you want to display time on the mode line, set DISPLAY-TIME? to #t, and accordingly set its appearance with DISPLAY-TIME-24HR? and DISPLAY-TIME-DATE?.
Configure the nyxt.el package to interact with Nyxt from Emacs.
Configure Xref, an Emacs mechanism to find definitions and references in your programs.
Configure the Gnus newsreader. If MAIL-ACCOUNT-IDS is not provided, use all the mail accounts. POSTING-STYLES allow you to set different email posting information based on the current newsgroup or article. See see for more details on how to write them. GROUP-PARAMETERS allow you to tailor the settings of particular groups. See see for more information on its syntax. TOPIC-ALIST and TOPIC-TOPOLOGY let you declaratively categorize groups into topics with your preferred hierarchy.
Configure LibreOffice.
Configure corfu completion UI for GNU Emacs.
Configure shell-scripting tooling for Emacs.
Configure tooling for Emacs Lisp, the programming language for GNU Emacs.
Configure TRAMP, a remote file editing tool for Emacs.
Configure eglot, an LSP package for emacs.
Configure Ement, the Matrix client for Emacs.
Configure the Slack.el Emacs client. For authentication to work, ensure to set your credentials (see Slack in the RDE manual) correctly.
Setup and configure Transmission and transmission.el
Set up and configure goimapnotify to listen on IMAP mailbox changes. If MAIL-ACCOUNT-IDS is not provided, use all the mail accounts. You can also control whether to NOTIFY? when new emails arrive.
Configure denote, Prot's great note taking package.
Setup and configure Elfeed for Emacs.
Configure geiser for emacs.
Configure Eshell, the Emacs shell.
Configure telega.el for GNU Emacs
Configure elpher, the Emacs' gemini and gopher browser.
Configure TempEL for emacs. To extend a list of templates from other features use `home-emacs-tempel-service-type'.
Configure the general command-intepreter-in-a-buffer (comint) for process-in-a-buffer derived packages like shell, REPLs, etc.
Configure IRC accounts.
Configure Nyxt's blocker mode.
Provides file systems for operating-system. By default %base-file-systems will be added to the end of FILE-SYSTEMS, this behavior can be overriden with BASE-FILE-SYSTEM argument.
Configure nov.el for GNU Emacs.
Configure pam modules to respect security token for authentication. If not specified otherwise default location for u2fcfg is `~/.config/Yubico/u2f-keys' and can be initialised with `guix shell pam-u2f -- pamu2fcfg > ~/.config/Yubico/u2f-keys'.
Provides base packages and allows to specify additional standalone packages for home-environment, or operating-system, or both. Standalone means that packages do not require configuration and not installed by system or home services.
Provides base system services.
Show keybindings and related functions as you type. When TURN-ON? enable rde-keycast-mode on configure-keycast package load.
Set up Flymake, the built-in on-the-fly syntax checker for Emacs.
Configure project.el, a library to perform operations on the current project.
Configure vertico completion UI for GNU Emacs.
Configure the display of battery status in Emacs.
Configure olivetti and helper functions for focused editing/reading.
Configure the Debbugs user interface for Emacs. Set the default packages to retrieve bugs for with DEFAULT-PACKAGES and the default severities with which bugs should be filered with DEFAULT-SEVERITIES.
Provide mail-accounts and mail-directory-fn for other mail-related features.
Configure email sending capabilities provided by message.el
. mail-signature
can be #t
, #f
, a string or a function, which accepts config with rde values and returns a string.
Configure the Emacs Tab Bar. Add the appropriate formatters via TAB-BAR-FORMAT. The default ones allow you to place "modules" (i.e. menu items constructed by the helper make-rde-tab-bar-module
) arbitrarily on each side of the bar, but you can also include built-in formatters such as tab-bar-format-tabs
.
The examples below show different types of modules:
(make-rde-tab-bar-module :id 'text :label "My arbitrary text") (make-rde-tab-bar-module :id 'battery :label 'battery-mode-line-string) (make-rde-tab-bar-module :id 'notifications :label '(:eval (rde-ednc--notify)))
Setup system virtualization.
Provides missing packages and other fixes for rde usage on foreign distro.
Configure Webpaste.el, a mode to paste whole buffers or parts of buffers to pastebin-like services. WEBPASTE-PROVIDERS denotes the list of providers that will be used in descending order of priority.
Configure spell-checking features in Emacs. SPELLING-PROGRAM will be used to detect spelling mistakes based on SPELLING-DICTIONARIES inside buffers of modes defined in FLYSPELL-HOOKS (prose) and in docstrings of modes defined in FLYSPELL-PROG-HOOKS (programming).
Configure Graphviz, the open source graph visualization software.
Configure the calendar and diary facilities in Emacs.
Configure org-cite, citar, and other packages related to bibliography and citation management for GNU Emacs.
Configure smtpmail, a simple mail protocol for sending mail from Emacs. If no MAIL-ACCOUNT-ID is provided, no account-specific settings will be configured.
Setup and configure password manager.
Add specific configuration to make security tokens work. It includes the configuration to be able to use the token as a user (without sudo).
Configure statusbar.
Configure org-roam for GNU Emacs. If org-roam-dailies need, enable `emacs-org-dailies' feature.
Configure org-mime for wysiwyg html mime mail composition via Org Mode. You can change the exported HTML-ELEMENT-STYLES by providing an association list of ELEMENT . STYLE such as:
'(("pre" . "color: #E6E1Dc; background-color: #232323; padding: 0.5em;") ("blockquote" . "border-left: 2px solid gray; padding-left: 4px;"))
The above darkens exported code-blocks and adds a border and some padding to offset block quotes.
Configure nx-router, a URL routing extension for Nyxt.
Configure nx-tailor, a Nyxt theme manager.
Allows to specify additional System and Home Services. PREFIX should be a symbol, which will be used to construct feature name.
Configure the circadian.el Emacs package for theme-switching based on the time of the day.
Configure Emacs Dashboard, an extensible startup screen. Choose whether to be prompted by the dashboard on startup by setting SHOW-ON-STARTUP?. Set up the visible sections via ITEMS, where each entry is of the form (LIST-TYPE . LIST-SIZE). See dashboard-items
to get an idea of the format. For the aforementioned to work, you also need to configure ITEM-GENERATORS, where each entry is of the form (LIST-TYPE . LIST-GENERATOR-FUNCTION). You can quickly navigate to each section with ITEM-SHORTCUTS and set a custom name for each one via ITEM-NAMES.
NAVIGATOR-BUTTONS are custom buttons that you can display below the BANNER, to include quick shortcuts to things like web bookmarks. BANNER can be either `official' for the official Emacs logo, `logo' for an alternative Emacs logo, #f to hide the banner, or a custom file path to an image whose dimensions you can constrain with BANNER-MAX-HEIGHT and BANNER-MAX-WIDTH.
Remind yourself of tasks by setting DASHBOARD-AGENDA-WEEKLY? to #t and customize the format of task entries with DASHBOARD-AGENDA-PREFIX-FORMAT (see org-agenda-prefix-format
for information on the format strings).
You can truncate paths whose character length is greater than PATH-MAX-LENGTH.
Provide account settings for Matrix. HOMESERVER refers to the address of your own Matrix server.
Configure Nyxt's userscript-mode to add custom USERSCRIPTS and USERSTYLES. See nyxt:manual#user-scripts inside Nyxt to learn more on how to construct these.
Set a more visually appealing Nyxt UI.
Configure slurp, grim and other tools for screenshot capabilities. Feature is sway dependent, because it relies on swaymsg.
Add a userscript to qutebrowser for adding auto-fill using rbw.
Changes the colorscheme of git in the terminal using farg.
Configure which-key. MIN-HEIGHT can be used to adjust the look of which-key popup, when there are not many items in it, can be easier to look through available options. IDLE-DELAY is the amount of seconds to wait for the which-key buffer to popup.
Configure pdf-tools, to work with pdfs inside Emacs.
Configure org-recur, a simple mode for recurring org-mode tasks.
Launch Sway on specified tty upon user login. Also, automatically switch to SWAY-TTY-NUMBER on boot. Log errors into LOGFILE. Sway is launched with additional LAUNCH-ARGUMENTS.
Provides desktop system services.
Make Emacs look more modern and minimalistic. It achieves this by removing most UI elements and allows you to add MARGIN, FRINGES, and various padding values for MODE-LINE-PADDING, HEADER-LINE-PADDING, and TAB-BAR-PADDING. Move the mode line to the top by setting HEADER-LINE-AS-MODE-LINE? to #t.
Configure treebundel for GNU Emacs.
Configure completion system for GNU Emacs.
Configure and extend the browse-url library to enhance the handling of URLs to browsers in Emacs. You can set URL mappings to rewrite URLs in Emacs buffers, open sites with cookies, make sure URLs use HTTPS, among other.
Configure ace-window, an Emacs package to quickly switch between windows.
Configure a simple power menu for emacs.
Configure re-builder, an Emacs mode to build Regexps with visual feedback. RE-SYNTAX can be either 'read, 'string, or 'rx.
Configure org-agenda for GNU Emacs.
Configure perspective.el to group/isolate buffers per frames. Make emacsclient feels more like a separate emacs instance.
Configure smartparens for structured code navigation, automatic string escape and pair management.
Check if containers can be created and exit with an informative error message if any test fails.
Configure org-dailies or org-roam-dailies for GNU Emacs, depending on ORG-ROAM-DAILIES? RDE value. When ENCRYPTED? is set to true, provide a default value for ORG-DAILIES-CAPTURE-TEMPLATES, which has .gpg at the end of filename, however its value can be overriden.
Configure the Chromium browser.
Configure modus-themes, a set of elegant and highly accessible themes for Emacs. DEUTERANOPIA? replaces red/green tones with yellow/blue, which helps people with color blindness. If DEUTERANOPIA-RED-BLUE-DIFFS? is set, red/blue colors will be used instead. If HEADINGS-SCALING? is set, different level headings will have different size.
Setup and configure Org-Protocol for Emacs.
Configure the display of weather in Emacs. If you don't provide WTTR-LOCATIONS you will get a weather report based on your IP address.
Configure input-method for GNU Emacs. Allows to use other layouts with emacs, whithout losing ability to use keybindings. Supported both Emacsy toggle-input-method (C-\) and system layout switching by utilizing reverse-im package.
Configure all-the-icons, a collection of fonts for Emacs.
Save & recover undo steps between Emacs sessions.
Launch EXWM on a specified TTY upon user login and automatically switch to EXWM-TTY-NUMBER on boot.
Switch to TTY on boot, after base services has been started.
Configure Sway Notification Center.
Configure nx-search-engines, a collection of easy-to-setup search engines for Nyxt.
You can pass additional search engines via EXTRA-ENGINES, a single argument procedure that takes the current rde configuration and returns Lisp configuration containing the engines.
Configure pulseaudio-control for PulseAudio integration in Emacs.